package flex.cc.fenfa.service.impl;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import flex.cc.fenfa.dao.RuleCountDao;
import flex.cc.fenfa.dto.RuleCountEntity;
import flex.cc.fenfa.service.RuleCountService;

/**
*
* @author WANGCONG
* 2021年10月17日下午4:31:02
* @desc 规则计数实现层
*/
@Service("ruleCountService")
public class RuleCountServiceImpl implements RuleCountService {
	
	@Resource
	private RuleCountDao ruleCountDao;
	
	/**
	*
	* @author WANGCONG
	* 2021年10月17日下午8:32:21
	* @desc 根据规则Id、服务商Id集合，查询当天分发数量占比
	*/
	@Override
	public synchronized List<RuleCountEntity> checkCount(Map<String, Object> countParams) {
		return ruleCountDao.checkCount(countParams);
	}

	/**
	*
	* @author WANGCONG
	* 2021年10月18日下午2:50:02
	* @desc 批量插入
	*/
	@Override
	public synchronized void insertBatch(List<RuleCountEntity> ruleCountList) {
		ruleCountDao.insertBatch(ruleCountList);
	}

	/**
	*
	* @author WANGCONG
	* 2021年10月19日下午4:35:12
	* @desc 根据规则Id、服务商Id查询当天信息
	*/
	@Override
	public synchronized RuleCountEntity queryOneByParam(Map<String, String> param) {
		return ruleCountDao.queryOneByParam(param);
	}

	/**
	*
	* @author WANGCONG
	* 2021年10月20日上午9:21:10
	* @desc 获取当前规则，在当天累计派发数
	*/
	@Override
	public synchronized int findMaxCountByRuleId(String ruleId) {
		return ruleCountDao.findMaxCountByRuleId(ruleId);
	}

	/**
	*
	* @author WANGCONG
	* 2021年10月20日上午9:38:17
	* @desc 根据ruleId、servicerId、当天时间更新具体的一条数据
	*/
	@Override
	public synchronized void updateVo(RuleCountEntity ruleCountVo) {
		ruleCountDao.updateVo(ruleCountVo);
	}

	/**
	*
	* @author WANGCONG
	* 2021年10月20日上午9:45:21
	* @desc 根据ruleId、当天时间更新多条数据的count值
	*/
	@Override
	public synchronized void updateCount(String ruleId) {
		ruleCountDao.updateCount(ruleId);
	}

	/**
	*
	* @author WANGCONG
	* 2021年10月22日上午11:22:27
	* @desc 规则更新，规则计数重置：version+1
	*/
	@Override
	public void updateVersionByRuleId(String ruleId) {
		ruleCountDao.updateVersionByRuleId(ruleId);
	}

	/**
	*
	* @author WANGCONG
	* 2021年11月9日下午3:16:17
	* @desc 规则插入
	*/
	@Override
	public int insertVo(RuleCountEntity ruleCountEntity) {
		return ruleCountDao.insertVo(ruleCountEntity);
	}

}
